package com.hsc.offer;

/**
 * @author
 * @date 2025-06-16
 * @Description 7、大家都知道斐波那契数列，现在要求输入一个整数n，请你输出斐波那契数列的第n项（从0开始，第0项为0）。n<=39
 * 斐波那契数列：前面两个值的相加等于后一个的值 1+1=2 1+2=3 2+3=5 3+5=8 5+8=13
 * 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
 * 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55
 */
public class OfferTest2 {
    public static void main(String[] args) {
        System.out.println("new OfferTest2().Fibonacci(10) = " + new OfferTest2().Fibonacci(10));
    }

    public int Fibonacci(int n) {
        int a = 0;
        int b = 1;
        if (n == 0) {
            return 0;
        }
        if (n == 1) {
            return 1;
        }

        // 求出在要求输入一个整数n，请你输出斐波那契数列的第n项
        // 从数组的i=2 的位置开始
        for (int i = 2; i <= n; i++) {
            // 当前项等于前面两项的和
            // 使用一个变量c来接收
            int c = a + b;
            System.out.println("c = " + c);
            a = b;
            System.out.println("a = " + a);
            b = c;
            System.out.println("b = " + b);

        }
        return b;


    }

}
